package NiuKe;

import java.util.Scanner;

/**
 * 撤销/恢复操作具有广泛的用途，比如word文档中输入一个单词，可以点撤销，然后可以再恢复。
 * 编程实现如下功能：  从标准输入读取到一个字符串，字符串可包含0个或多个单词，单词以空格
 * 或者tab分隔； 如果遇到 "undo" 字符串，表示"撤销"操作，前一个字符串被撤销掉；
 * 如果遇到"redo"字符串，表示恢复刚才撤销掉的字符串.
 * 例如:   输入字符串 "hello undo redo world."，
 * 对字符串中的 undo 和 redo 处理后， 最终输出的结果为 "hello world."
 */
public class CheXiaoHuiFu {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String input = in.nextLine();
        solution(input);
    }

    public static void solution(String input) {
        String[] trim = input.split(" ");
        String[] result = new String[trim.length];
        String[] cache = new String[trim.length];
        int resultCont = 0;
        int cacheCount = 0;
        for (String t : trim) {
            if (t.equals("undo")) {
                cache[cacheCount++] = result[resultCont - 1];
                result[--resultCont] = null;
                continue;
            }
            if (t.equals("redo")) {
                result[resultCont++] = cache[cacheCount - 1];
                cache[--cacheCount] = null;
                continue;
            }
            result[resultCont++] = t;
        }
        for (String s : result) {
            System.out.println(s);
        }
    }
    public void speak(String a){

    }
    public void speak(String ... a){

    }
}